Fix OUT_DIR not being passed to rustdoc
authorPierre Krieger <pierre.krieger1708@gmail.com>
Wed, 12 Nov 2014 12:12:02 +0000 (13:12 +0100)
committerPierre Krieger <pierre.krieger1708@gmail.com>
Wed, 12 Nov 2014 12:49:38 +0000 (13:49 +0100)
src/cargo/ops/cargo_rustc/mod.rs
tests/test_cargo_compile_custom_build.rs

index 89f4217daa541eafd70974c19302e3e6e4da0b1e..fef32aff28b3d404d8e2639c0db29a3fafe9689d 100644 (file)
@@ -481,7 +481,16 @@ fn rustdoc(package: &Package, target: &Target,
         None => {}
     }
 
-    let rustdoc = try!(build_deps_args(rustdoc, target, package, cx, kind));
+    let mut rustdoc = try!(build_deps_args(rustdoc, target, package, cx, kind));
+
+    let has_build_cmd = package.get_targets().iter().any(|t| {
+        t.get_profile().is_custom_build()
+    });
+    rustdoc = rustdoc.env("OUT_DIR", if has_build_cmd {
+        Some(cx.layout(package, kind).build_out(package))
+    } else {
+        None
+    });
 
     log!(5, "commands={}", rustdoc);
 
index e11dfa6f1bb85b3641249777bc44584c4233a1cb..338c5809e1ffa476031b18d102be82c5e8828487 100644 (file)
@@ -818,6 +818,9 @@ test!(code_generation {
 {running} `target[..]foo`
 Hello, World!
 ", compiling = COMPILING, running = RUNNING).as_slice()));
+
+    assert_that(p.cargo_process("test"),
+                execs().with_status(0));
 })
 
 test!(release_with_build_script {